export interface PanelOptionsType {
  type?: string; // 默认default不显示操作按钮、操作operate显示操作组
  title?: string
  isDropShow?: boolean; // 默认展开内容区
  borderBottom?: boolean;
}

export interface ContentStyleType {
  height?: string
}

export interface OperateGroupType {
  type: string;
  name: string;
  show: boolean;
}

export interface TransferResData {
  /** 获取直属用户【用户管理-查看下属用户】 */
  getSuperiorTree: {
    list: any
  };
  /** 获取部门 */
  getDepartmentTree: {
    list: any
  };
  /** 获取省市区 */
  getAreaTree: {}
}

export interface TransferReqData {
  getSuperiorTree: {
    name: string
  };
  getDepartmentTree: {};
  getAreaTree: {}
}

/** 表格基础类型配置  */
interface BasicLabel {
  label: string; // 标题
  width?: number | string; // 宽度
  fixed?: string; // 固定位置
  align?: string; // 行排列
}

/** 表格顶部类型配置  */
export interface TableLabel extends BasicLabel {
  prop: string;
  methods?: string;
  render?: render;
}

/** 表格顶部自定义函数类型 */
interface render {
  (row: any): string | any
}

/** 表格操作栏类型 */
export interface OptionLabel extends BasicLabel {
  children: OptionChild[]
}

/** 表格操作栏子选项类型 */
export interface OptionChild {
  label: string | ((row: any) => string); // 标题
  icon: string | ((row: any) => string); // icon图标
  methods?: string; // 执行方法
  permission?: string | string[] | object; // 权限
  hidden?: boolean | ((row: any) => boolean);
  children?: OptionChild[],
  type?: string; // tooltip类型(inline为图片文字在一行显示，默认为只显示图标，悬停显示文字)
}

export interface Select {
  id: number | boolean;
  code?: string | number;
  label: string;
  extend?: any;
}

export interface FormOptions {
  /** 子项组件类型 */
  mode?: 'input' | 'radio' | 'singleSelect' | 'split';
  hidden?: boolean;
  label: string;
  prop: string;
  /** mode类型为input使用 */
  disabled?: boolean;
  /** mode类型为radio | singleSelect使用 */
  selects?: Select[];
}
